package com.cheer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.cheer.common.Page;
import com.cheer.dto.OaArticleAddDTO;
import com.cheer.dto.OaArticleUpdateDTO;
import com.cheer.entity.OaArticleEntity;
import com.cheer.vo.*;

import java.util.List;

/**
 * 文章
 *
 * @author cheer
 */
public interface OaArticleService extends IService<OaArticleEntity> {

    /**
     * 添加文章
     */
    void add(OaArticleAddDTO articleAddDTO);

    /**
     * 分页查询文章列表
     */
    Page<OaArticleListVO> list(Integer pageNum, Integer pageSize, Integer articleClass, String title, Integer id);

    /**
     * 批量删除文章
     */
    void delete(List<Long> ids);

    /**
     * 查看文章详情
     */
    OaArticleInfoVO info(Integer id);

    /**
     * 修改文章
     */
    void update(OaArticleUpdateDTO articleUpdateDTO);

    /**
     * 启动或禁用文章
     */
    void updateStatus(Integer id, Integer status);

    /**
     * 推荐或取消推荐
     */
    void updateRecommend(Integer id, Integer recommend);

    /**
     * 分页查询推荐文章
     */
    List<OaArticleSimpleVO> listRecommend(Integer pageNum, Integer pageSize);

    /**
     * 查询分类下的文章列表
     */
    OaArticleClassFrontVO listByArticleClass(Integer articleClass);

    /**
     * 查询分类下的文章列表
     */
    List<OaArticleFrontVO> listByArticleClass(Integer pageNum, Integer pageSize, Integer articleClass);

    /**
     * 查询文章标题
     */
    String getTitle(Integer id);

    /**
     * 学习文章
     */
    String enter(Integer id, Integer userId, String openid);

    List<SimpleObjectVO> all();

    List<SimpleObjectVO> listSimpleByArticleClass(Integer articleClass);

    OaArticleEntity getFirst(Integer articleClass);
}

